package com.brillilab.service.core.topics;

import com.brillilab.domain.po.topics.TopicMember;
import com.brillilab.domain.vo.lab.MemberInfoVo;
import com.brillilab.domain.vo.topics.TopicMemberVo;

import java.util.List;

public interface ITopicMemberService {
    List<TopicMember> selectByLabMemberId(Long labMemberId);

    List<TopicMember> selectByInLabMemberIds(List<Long> labMemberIds);

    int insertBatch(List<TopicMember> insertList);

    List<TopicMember> selectListByLabId(Long labId);

    List<TopicMemberVo> selectVoList(Long labId,Long topicId,Integer state);

    List<TopicMember> selectListByTopicIds(List<Long> topicIds);

    boolean deleteExecutor(Long topicId);

    boolean deleteMembers(Long topicId);

    List<TopicMember> selectListByTopicId(Long topicId);

    List<TopicMember> selectListByLabMemberId(Long labMemberId);
    
    /**
   	 * 获取相同课题的成员ID列表
   	 * @param labMemberId
   	 * @return
   	 */
   	List<Long> getIdenticalTopicLabMemberIds(Long labMemberId);
   	
   	List<Long> selectTopicIds(Long labId,Long labMemberId);

	List<TopicMember> selectByLabMemberIdAndState(Long labMemberId, Integer state);

	boolean topicMemberAudit(Long topicMemberId, Integer isAdopt);

	TopicMember getTopicMember(Long topicId, Long labMemberId);

	/**
	 * 判断loginerId是否是labMemberId成员组执行人
	 * @param loginerId
	 * @param labMemberId
	 * @return
	 */
	boolean isMainExecutor(Long loginerId, Long labMemberId);

	void updateById(TopicMember topicMember);

	TopicMember getTopicMainMember(Long topicId);

}
